数据分析之Pandas从入门到放弃:代码+实战,9分钟带你推开Pandas大门!!! |
您所在的位置:网站首页 › pandas 计算标准差 › 数据分析之Pandas从入门到放弃:代码+实战,9分钟带你推开Pandas大门!!! |
1. Pandas的基本定义
在数据分析中,Pandas的使用频率很高
Pandas可以说是基于NumPy构建的含有更高级数据结构和分析能力的工具包
Series和DataFrame是两个核心数据结构,分别代表一维的序列和二维的表结构
基于这两种数据结构,Pandas可以对数据进行导入、清洗、处理、统计和输出
2. Pandas的使用方法
2.1 Series
Series是个定长的字典序列
在存储的时候,相当于两个ndarry,这也是和字典结构最大的不同。因为字典结构,元素个数是不固定的
Series的两个基本属性: ①index ②values
举个实例,来看一下 Series的使用方法: # -*- coding: utf-8 -*- # auth : carl_DJ # time : 2020-8-28 from pandas import Series,DataFrame x1 = Series([1,2,3,4]) x2 = Series(data=[1,2,3,4],index=['a','b','c','d']) #使用字典来创建 d = {'a':1,'b':2,'c':3,'d':4} x3=Series(d) print(f'x1打印的结果是:{x1}' ) print('='*20) print(f'x2打印的结果是:{x2}') print('='*20) print(f'x3打印的结果是:{x3}')结果如下: 我们在举个例子: # -*- coding: utf-8 -*- # auth : carl_DJ # time : 2020-8-28 from pandas import DataFrame data = { 'Chinese':[66,88,93,11,66], 'Math':[30,20,40,50,77], 'English':[65,88,90,55,22] } df1 = DataFrame(data) df2 = DataFrame( data, index=['张三','李四','王五','赵刘','贾七'], columns=['Chinese','Math','English'] ) print(f'df1打印的结果是:\n{df1}') print('='*30) print(f'df2打印的结果是:\n{df2}')看一下效果 实例 #删除行 df2 = df2.drop(columns=['English']) #删列 df2 = df2.drop(index=['张三'])运行结果 ![]() 2.2.3 更改数据格式操作 更改数据格式 #更改数据格式 df2['Chinese'].astype('str') df2['Chinese'].astype(np.int64)2.2.4 去掉数据间的空格操作 去掉数据间的空格 #删除数据左右两边的空格 df2['Chinese'] = df2['Chinese'].map(str.split)2.2.5 大小写转换操作 全部大写 #全部大写转换 df2.columns = df2.columns.str.upper() 全部小写 #全部小写转换 df2.columns = df2.columns.str.lower() 首字母大写 #首字母大写 df2.columns = df2.columns.str.title()2.2.6 数据清洗 使用apply对数据进行清洗apply是Pandas中自由度非常高的函数,使用频率非常高。比如: ① 对Math列的数值进行大小写转换 #对Math列进行大小写转换 df2['Math'] = df2['Math'].apply(str.upper) ②定义函数,在apply中使用 #定义函数,在apply中使用 def par_df(par): return par*2 df1['Chinese'] = df1['Chinese'].apply(par_df)2.3 Pandas中的统计函数 2.3.1 基本数据统计用法 count() 统计个数,空值NaN不计算 describe() 一次性输出多个统计指标,包括:count, mean, std, min, max等 min()最小值 max()最大值 sum()总和 median()中位数 var()方差 std()标准差 argmin() 统计最小值的索引位置 argmax()统计最大值的索引位置 idxmin() 统计最小值的索引值 idxmax() 统计最大值的索引值 2.3.2 函数链接用法 inner内连接 #内连接 df3 = pd.merge(df1, df2, how='inner') outer外连接 #外连接 df3 = pd.merge(df1, df2, how='outer') right右连接 #内连接 df3 = pd.merge(df1, df2, how='right') left左连接 #内连接 df3 = pd.merge(df1, df2, how='left')2.3.3 loc函数及iloc函数的用法 loc函数:通过行索引 “Index” 中的具体值来取行数据(如取"Index"为"A"的行) iloc函数:通过行号来取行数据(如取第二行的数据)老规矩,上代码 示例一:提取行 # -*- coding: utf-8 -*- # auth : carl_DJ # time : 2020-8-28 """ 实现功能: 提取行的数据 """ from pandas import DataFrame data = { 'Chinese':[66,88,93,11,66], 'Math':[30,20,40,50,77], 'English':[65,88,90,55,22] } df2 = DataFrame( data, index=['张三','李四','王五','赵刘','贾七'], columns=['Chinese','Math','English'] ) #提取index为'张三'的行 print(f"loc函数提取index为'张三'的行的内容:\n {df2.loc[u'张三']}") print("="*30) #提取第1行内容 print(f"iloc函数提取第1行的内容:\n {df2.iloc[1]}")运行结果 示例二:提取列 # -*- coding: utf-8 -*- # auth : carl_DJ # time : 2020-8-28 """ 实现功能: 提取列的数据 """ from pandas import DataFrame data = { 'Chinese':[66,88,93,11,66], 'Math':[30,20,40,50,77], 'English':[65,88,90,55,22] } df2 = DataFrame( data, index=['张三','李四','王五','赵刘','贾七'], columns=['Chinese','Math','English'] ) #提取列为Englis的所有内容 #使用loc函数获取分数 print(f"loc函数提取列为Englis的所有内容:\n {df2.loc[:,['English']]}") print("="*30) #提取第2列的所有内容 #使用iloc函数获取分数 print(f"iloc函数提取第2列的所有内容:\n {df2.iloc[:,2]}")运行结果 示例三:提取列和行 # -*- coding: utf-8 -*- # auth : carl_DJ # time : 2020-8-28 from pandas import DataFrame data = { 'Chinese':[66,88,93,11,66], 'Math':[30,20,40,50,77], 'English':[65,88,90,55,22] } df2 = DataFrame( data, index=['zhangsan','lisi','wangwu','zhaoliu','jiaqi'], columns=['Chinese','Math','English'] ) #使用loc函数获取分数 loc_soc = df2.loc[['zhangsan','zhaoliu'],['Chinese','English']] print(f'zhangsan,zhaoliu的Chinese,English成绩分别是:\n{loc_sco}') #使用iloc函数获取分数 iloc_sco = df2.iloc[[0,3],[0,2]] print(f'zhangsan,zhaoliu的Chinese,English成绩分别是:\n{iloc_sco}')运行结果 注:这里的 sort_values 方法类似于 SQL中的order by 用法。 2.6读写文件 读取csv文件 #读取csv文件 pd.read_csv('file_name') 写入csv文件 #写入csv文件,不保存index pd.to_csv('file_name',index=False)2.7 合并两个Dataframe ・使用merge通过index来合并Dataframe #合并两个Dataframe df2 = df.merge(df2,left_index=True,right_index=True,how='left') |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |